package org.inspiration.dudu.user.service;

import java.util.List;

public interface UserFollowService {
    /**
     * 关注某个用户
     * @param followerId 关注者的用户 ID
     * @param followingId 被关注者的用户 ID
     */
    void followUser(Long followerId, Long followingId);

    /**
     * 取消关注某个用户
     * @param followerId 关注者的用户 ID
     * @param followingId 被关注者的用户 ID
     */
    void unfollowUser(Long followerId, Long followingId);

    /**
     * 获取某个用户关注的所有用户 ID 列表
     * @param followerId 关注者的用户 ID
     * @return 关注的用户 ID 列表
     */
    List<Long> getFollowingUserIds(Long followerId, Integer pageNum, Integer pageSize);

    /**
     * 获取某个用户的所有粉丝的用户 ID 列表
     * @param followingId 被关注者的用户 ID
     * @return 粉丝的用户 ID 列表
     */
    List<Long> getFollowerUserIds(Long followingId, Integer pageNum, Integer pageSize);

    /**
     * 判断一个用户是否关注了另一个用户
     * @param followerId 关注者的用户 ID
     * @param followingId 被关注者的用户 ID
     * @return 如果关注返回 true，否则返回 false
     */
    boolean isFollowing(Long followerId, Long followingId);
}
